/*
	长度为n的顺序表L，要求时间复杂度为O(n)，空间复杂度为O(1)，删除表中所有值为x的元素
	方法一：遍历线性表，用从0开始的自增的k记录不等于x的位置，如果不相等elem_array[k] = elem_array
	方法二：遍历线性表，用k记录等于x的个数，遇到不相等往前挪k
*/

#include<stdio.h>
#include<malloc.h>
#include"..\Sequence_List\zyf_SqList.h"

void del_sameval_List_1(SqList *L,int x)
{
	int k = 0;
	for (int i = 0;i < L -> length;i++)
	{
		if (L -> elem_array[i] != x)
			L -> elem_array[k++] = L -> elem_array[i];
	}

	L -> length = k;
}

void del_sameval_List_2(SqList *L,int x)
{
	int k = 0;
	
	for (int i = 0;i < L -> length; i++)
	{
		if (L -> elem_array[i] == x)
			k++;
		else
		{
			L -> elem_array[i-k] = L -> elem_array[i];
		}
	}
	

	L ->length = L -> length - k;
}